perm filename RJWMFR[1,DBL] blob sn#061627 filedate 1973-09-07 generic text, type T, neo UTF8
(FILECREATED "24-AUG-73 17:59:26" MOREFINDRULES)


  (LISPXPRINT (QUOTE MOREFINDRULESVARS)
              T)
  [RPAQQ
    MOREFINDRULESVARS
    ((VARS INEQUALITIES BAGARULES TOPRULES FAILINTODOWNRULES BAGEX 
           BAGEXCOMPLICATED INEQSTRIPSTRIP INEQIFTHENELSE BAGALOWERPLUS 
           INEQSTRIPTRAN INEQSTRIPBAG FIFTHENELSE DEDUCE LTPLUS ORSPLIT 
           ORSPLITMANY BAGEX1)
     (P (DEFTYPE (QUOTE IFTHENELSE)
                 (QUOTE TUPLE))
        [SETQ C1 (QUOTE (ASSERT (AND (SET]
        [SETQ C2 (QUOTE (WHEN EXP (LTQ (SUBTRACT ←W ←X)
                                       ←Y)
                              INDICATOR MODELVALUE THEN
                              (PROG (DECLARE RTSIDE)
                                    [SETQ ←RTSIDE
                                          ($TRYALL $PLUSRULES
                                                   (' (PLUS $Y $X]
                                    (ASSERT (LTQ $W $RTSIDE)
                                            WRT $VERICON]
        [SETQ C3
              (QUOTE (WHEN EXP (LT (SUBTRACT ←W ←X)
                                   ←Y)
                           INDICATOR MODELVALUE PUTS FALSE THEN
                           (PROG (DECLARE RTSIDE)
                                 [SETQ
                                   ←RTSIDE
                                   ($TRYALL $PLUSRULES
                                            (' (PLUS $Y $X
                                                     (MINUS 1]
                                 (DENY (LTQ $W $RTSIDE)
                                       WRT $VERICON]
        [SETQ C4 (QUOTE (WHEN EXP (LTQ (PLUS (SUBTRACT ←W ←X)
                                             ←X)
                                       ←Y)
                              INDICATOR MODELVALUE THEN
                              (ASSERT (LTQ $W $Y)
                                      WRT $VERICON]
        [SETQ C5 (QUOTE (ASSERT (LTQ 1 M F N NN]
        [SETQ C6 (QUOTE (ASSERT (LTQ M I]
        [SETQ C7 (QUOTE (ASSERT (LTQ J N]
        [SETQ C7.1 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 (SUBTRACT
                                                      M 1)))
                                       (STRIP (BAGA A M NN]
        [SETQ C7.2 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 N))
                                       (STRIP (BAGA A (PLUS 1 N)
                                                    NN]
        [SETQ C8 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 (SUBTRACT I 1)))
                                     R]
        [SETQ C9 (QUOTE (ASSERT (LTQ R (STRIP (BAGA A (PLUS 1 J)
                                                    NN]
        [SETQ C10 (QUOTE (ASSERT (LTQ (ACCESS A J)
                                      R]
        [SETQ C11 (QUOTE (ASSERT (LTQ R (ACCESS A I]
        [SETQ C12 (QUOTE (ASSERT (LTQ I J]
        [SETQ C13 (QUOTE (ASSERT (LT (SUBTRACT J 1)
                                     (PLUS 1 I]
        [SETQ C14 (QUOTE (ASSERT (LTQ F (SUBTRACT J 1]
        [SETQQ C15 (GOAL $PROVE
                         (LTQ [STRIP (BAGA (EXCHANGE A I J)
                                           1
                                           ((SUBTRACT J 1]
                              (STRIP (BAGA (EXCHANGE A I J)
                                           (PLUS 1 (SUBTRACT J 1))
                                           NN]
        (FSETUP MOREFINDRULESVARS]
  (RPAQQ INEQUALITIES
         (TUPLE ANDSPLIT RELCHECK ORSPLIT ORSPLITMANY PROOFSIMP 
                INEQIFTHENELSE INEQSTRIPBAG INEQSTRIPSTRIP 
                INEQSTRIPTRAN GTQLTQ LTQMANY FSUBTRACT1 FSUBTRACT2 
                INEQTIMESDIVIDE EQINEQMONOTONE LTQPLUS PROOFLEIB 
                INEQLEIB))
  (RPAQQ BAGARULES
         (TUPLE BAGAPLUS BAGAEMPTY BAGAII ARGSIMP BACH BAGEX BAGEX1 
                BAGAMINUS BAGALOWERPLUS BAGEXCOMPLICATED))
  (RPAQQ TOPRULES
         (TUPLE HASSIMP FAILINTODOWNRULES PLUSOP TIMESOP MINUSOP 
                FIFTHENELSE BAGAOP SUBSTOP EXPZERO EXPEXP SUBPLUS 
                SUBNUM GCDEQ ACCH CONSDIFF DIFDIF DIFFCONS DIFFONE 
                MAXPLUS MAXONE BAGSTRIP ACCEX EQNUMB))
  [RPAQQ FAILINTODOWNRULES (LAMBDA ←X
                                   (IF (IN (STYPE $X)
                                           (TUPLE TUPLE SET BAG))
                                       THEN
                                       (FAIL GOAL)
                                       ELSE
                                       (FAIL]
  [RPAQQ BAGEX (LAMBDA (BAGA (EXCHANGE ←A ←I ←J)
                             ←L ←M)
                       (PROG (DECLARE)
                             (GOAL $DEDUCE (LTQ $I $J))
                             (ATTEMPT
                               [GOAL $DEDUCE
                                     (OR (AND (LTQ $L $I)
                                              (LTQ $J $M))
                                         (LT $J $L)
                                         (LT $M $I)
                                         (AND (LT $I $L)
                                              (LT $M $J]
                               THEN
                               (RETURN (BAGA $A $L $M))
                               ELSE
                               (FAIL]
  [RPAQQ
    BAGEXCOMPLICATED
    (LAMBDA
      (BAGA (EXCHANGE ←A ←I ←J)
            ←L ←M)
      (PROG (DECLARE)
            (GOAL $DEDUCE (LTQ $I $J))
            [ATTEMPT (GOAL $DEDUCE (AND (LTQ $L $I)
                                        (LTQ $M $J)))
                     THEN
                     (RETURN (IFTHENELSE
                               (LT $M $I)
                               (BAGA $A $L $M)
                               (BAG (STRIP (BAGA $A $L (SUBTRACT $I 1)))
                                    (ACCESS $A $J)
                                    (STRIP (BAGA $A (PLUS 1 $I)
                                                 $M]
            (ATTEMPT (GOAL $DEDUCE (AND (LTQ $J $M)
                                        (LTQ $L $J)))
                     THEN
                     [RETURN (IFTHENELSE
                               (LTQ $L $I)
                               (BAGA $A $L $M)
                               (BAG (STRIP (BAGA $A $L (SUBTRACT $J 1)))
                                    (ACCESS $A $I)
                                    (STRIP (BAGA $A (PLUS 1 $J)
                                                 $M]
                     ELSE
                     (FAIL]
  [RPAQQ INEQSTRIPSTRIP
         (LAMBDA (←F (STRIP (BAGA ←A ←I ←J))
                     (STRIP (BAGA ←A ←K ←L)))
                 (PROG (DECLARE LOWER1 UPPER1 LOWER2 UPPER2 C D)
                       (ATTEMPT (EXISTS ($F (STRIP (BAGA $A ←LOWER1 
                                                         ←UPPER1))
                                            ←C))
                                [EXISTS ($F ←D
                                            (STRIP (BAGA $A ←LOWER2 
                                                         ←UPPER2]
                                (GOAL $DEDUCE (AND (LTQ $LOWER1 $I)
                                                   (LTQ $J $UPPER1)
                                                   (LTQ $LOWER2 $K)
                                                   (LTQ $L $UPPER2)
                                                   (LTQ $C $D)))
                                ELSE
                                (FAIL]
  [RPAQQ INEQIFTHENELSE (LAMBDA (←F ←←W1 (IFTHENELSE ←X ←Y ←Z)
                                    ←←W2)
                                (PROG (DECLARE VERICON)
                                      (ATTEMPT (SETQ ←VERICON
                                                     (CONTEXT PUSH 
                                                              LOCAL))
                                               (ASSERT $X WRT $VERICON)
                                               THEN
                                               (GOAL $INEQUALITIES
                                                     ($F $$W1 $Y $$W2)
                                                     WRT $VERICON))
                                      (ATTEMPT (SETQ ←VERICON
                                                     (CONTEXT PUSH 
                                                              LOCAL))
                                               (DENY $X WRT $VERICON)
                                               THEN
                                               (GOAL $INEQUALITIES
                                                     ($F $$W1 $Z $$W2)
                                                     WRT $VERICON)
                                               ELSE
                                               (RETURN (SUCCESS WITH 
                                                     INEQIFTHENELSE]
  [RPAQQ BAGALOWERPLUS
         (LAMBDA (BAGA ←ARNAME ←L ←M)
                 (PROG (DECLARE F LOWER UPPER W)
                       (EXISTS (←F ←←V (STRIP (BAGA $ARNAME ←LOWER 
                                                    ←UPPER))
                                   ←←W))
                       (GOAL $DEDUCE (EQ $LOWER (PLUS 1 $L)))
                       (RETURN (BAG (ACCESS $ARNAME $L)
                                    (STRIP (BAGA $ARNAME (PLUS 1 $L)
                                                 $M]
  [RPAQQ INEQSTRIPTRAN
         (LAMBDA (←F (STRIP (BAGA ←ARNAME ←L ←M))
                     ←C)
                 (PROG (DECLARE LOWER UPPER D)
                       (EXISTS ($F (STRIP (BAGA $ARNAME ←LOWER ←UPPER))
                                   ←D))
                       (GOAL $DEDUCE (AND (LTQ $LOWER $L)
                                          (LTQ $M $UPPER)
                                          (LTQ $D $C]
  [RPAQQ INEQSTRIPBAG (LAMBDA (←F ←←W (STRIP (BAG ←X ←←Y))
                                  ←←Z)
                              (GOAL $INEQUALITIES
                                    (AND ($F $$W $X $$Z)
                                         ($F $$W (STRIP (BAG $$Y))
                                             $$Z]
  [RPAQQ FIFTHENELSE (LAMBDA (←F (IFTHENELSE ←W ←X ←Y))
                             (' (IFTHENELSE $W ($F $X)
                                            ($F $Y]
  (RPAQQ DEDUCE
         (TUPLE RELCHECK ANDSPLIT ORSPLIT ORSPLITMANY LTPLUS FSUBTRACT1 
                FSUBTRACT2 LTQPLUS NOTATOM CONSTCAR CONSTCDR))
  (RPAQQ LTPLUS [LAMBDA (LT ←I (PLUS ←J ←K))
                        (GOAL $DEDUCE (AND (LTQ $I $J)
                                           (LT 0 $K)))
                        BACKTRACK])
  [RPAQQ ORSPLIT (LAMBDA (OR ←X ←Y)
                         (ATTEMPT (GOAL $GOALCLASS $X)
                                  ELSE
                                  (GOAL $GOALCLASS $Y]
  [RPAQQ ORSPLITMANY (LAMBDA (OR ←X ←Y ←Z ←←W)
                             (ATTEMPT (GOAL $GOALCLASS $X)
                                      ELSE
                                      (GOAL $GOALCLASS
                                            (OR $Y $Z $$W]
  [RPAQQ BAGEX1
         (LAMBDA
           (BAGA (EXCHANGE ←A ←I ←J)
                 ←L ←M)
           (PROG (DECLARE)
                 (GOAL $DEDUCE (LTQ $I $J))
                 [ATTEMPT (GOAL $DEDUCE (AND (LT $I $L)
                                             (LTQ $L $J)
                                             (LTQ $J $M)))
                          THEN
                          (RETURN (BAG (STRIP (BAGA $A $L (SUBTRACT
                                                      $J 1)))
                                       (ACCESS $A $I)
                                       (STRIP (BAGA $A (PLUS 1 $J)
                                                    $M]
                 (ATTEMPT (GOAL $DEDUCE (AND (LT $M $J)
                                             (LTQ $L $I)
                                             (LTQ $I $M)))
                          THEN
                          [RETURN (BAG (STRIP (BAGA $A $L (SUBTRACT
                                                      $I 1)))
                                       (ACCESS $A $J)
                                       (STRIP (BAGA $A (PLUS 1 $I)
                                                    $M]
                          ELSE
                          (FAIL]
  (DEFTYPE (QUOTE IFTHENELSE)
           (QUOTE TUPLE))
  [SETQ C1 (QUOTE (ASSERT (AND (SET]
  [SETQ C2 (QUOTE (WHEN EXP (LTQ (SUBTRACT ←W ←X)
                                 ←Y)
                        INDICATOR MODELVALUE THEN
                        (PROG (DECLARE RTSIDE)
                              [SETQ ←RTSIDE ($TRYALL
                                      $PLUSRULES
                                      (' (PLUS $Y $X]
                              (ASSERT (LTQ $W $RTSIDE)
                                      WRT $VERICON]
  [SETQ C3 (QUOTE (WHEN EXP (LT (SUBTRACT ←W ←X)
                                ←Y)
                        INDICATOR MODELVALUE PUTS FALSE THEN
                        (PROG (DECLARE RTSIDE)
                              [SETQ ←RTSIDE
                                    ($TRYALL
                                      $PLUSRULES
                                      (' (PLUS $Y $X (MINUS 1]
                              (DENY (LTQ $W $RTSIDE)
                                    WRT $VERICON]
  [SETQ C4 (QUOTE (WHEN EXP (LTQ (PLUS (SUBTRACT ←W ←X)
                                       ←X)
                                 ←Y)
                        INDICATOR MODELVALUE THEN (ASSERT (LTQ $W $Y)
                                                          WRT $VERICON]
  [SETQ C5 (QUOTE (ASSERT (LTQ 1 M F N NN]
  [SETQ C6 (QUOTE (ASSERT (LTQ M I]
  [SETQ C7 (QUOTE (ASSERT (LTQ J N]
  [SETQ C7.1 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 (SUBTRACT M 1)))
                                 (STRIP (BAGA A M NN]
  [SETQ C7.2 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 N))
                                 (STRIP (BAGA A (PLUS 1 N)
                                              NN]
  [SETQ C8 (QUOTE (ASSERT (LTQ (STRIP (BAGA A 1 (SUBTRACT I 1)))
                               R]
  [SETQ C9 (QUOTE (ASSERT (LTQ R (STRIP (BAGA A (PLUS 1 J)
                                              NN]
  [SETQ C10 (QUOTE (ASSERT (LTQ (ACCESS A J)
                                R]
  [SETQ C11 (QUOTE (ASSERT (LTQ R (ACCESS A I]
  [SETQ C12 (QUOTE (ASSERT (LTQ I J]
  [SETQ C13 (QUOTE (ASSERT (LT (SUBTRACT J 1)
                               (PLUS 1 I]
  [SETQ C14 (QUOTE (ASSERT (LTQ F (SUBTRACT J 1]
  [SETQQ C15 (GOAL $PROVE (LTQ [STRIP (BAGA (EXCHANGE A I J)
                                            1
                                            ((SUBTRACT J 1]
                               (STRIP (BAGA (EXCHANGE A I J)
                                            (PLUS 1 (SUBTRACT J 1))
                                            NN]
  (FSETUP MOREFINDRULESVARS)
STOP